package com.example.yxiuweather

import android.app.Application
import com.qweather.sdk.JWTGenerator
import com.qweather.sdk.QWeather


class WeatherApplication: Application()  {

    /**
     * 全局上下文获取：
     * - 通过 companion object 中的 instance 变量保存当前 Application 的实例
     * - 使得整个应用中可以方便地获取到上下文
     */
    companion object {
        private var instance: WeatherApplication? = null
        fun getInstance(): WeatherApplication? {
            return instance
        }
    }

    override fun onCreate() {
        super.onCreate()
        instance = this
        initWeatherSdk()
    }

    fun initWeatherSdk() {
        // 初始化天气SDK
        // 通过SDK提供的JWTGenerator设置令牌生成器，其实现自TokenGenerator接口
        val jwt = JWTGenerator(
            WeatherConstants.WEATHER_PRIVATE_KEY,  // 私钥
            WeatherConstants.WEATHER_PROJECT_ID,  // 项目ID
            WeatherConstants.WEATHER_JWT_ID
        )
        QWeather.getInstance(this, WeatherConstants.WEATHER_HOST) // 初始化服务地址
            .setLogEnable(true)  // 启用调试日志（生产环境建议设置为 false）
            .setTokenGenerator(jwt)
    }
}